package A2016;

import java.util.Scanner;

/*
 有N个瓶子，编号 1 ~ N，放在架子上。
比如有5个瓶子：
2 1 3 5 4
要求每次拿起2个瓶子，交换它们的位置。
经过若干次后，使得瓶子的序号为：
1 2 3 4 5
对于这么简单的情况，显然，至少需要交换2次就可以复位。
如果瓶子更多呢？你可以通过编程来解决。
输入格式为两行：
第一行: 一个正整数N（N<10000）, 表示瓶子的数目
第二行：N个正整数，用空格分开，表示瓶子目前的排列情况。
输出数据为一行一个正整数，表示至少交换多少次，才能完成排序。
例如，输入：
5
3 1 2 5 4
程序应该输出：
3
再例如，输入：
5
5 4 3 2 1
程序应该输出：
2
资源约定：
峰值内存消耗（含虚拟机） < 256M
CPU消耗  < 1000ms
 */
public class _9_交换瓶子 {
	private static int N;
	private static int[] a=new int[10000+2];
	private static int ans;
	
	public static void main(String[] args) {
		Scanner sc= new Scanner(System.in);
		N= sc.nextInt();
		for(int k=1;k<N+1;k++) {
			a[k]=sc.nextInt();
		}
		for(int i=1;i<=N;i++) {
			if(a[i]!=i) {
				for(int j=i+1;j<=N;j++) {
					if(i==a[j]) {
						swap(a[i],a[j]);
					}
				}
			}
		}
		System.out.println(ans);
	}
	private static void swap(int i, int j) {
		int t=a[i];
		a[i]=a[j];
		a[j]=t;	
		ans++;
	}
}
